package main

import (
	"log"
	"net/http"

	"./v1"
	"./victory/v2"
	"github.com/tungyao/cedar"
)

/**
这是一个中转服务器 用于客户端用 account和password 获取access token
然后用token获取账户信息 加密协议是固定的
具体流程如下
	REGISTER  account+secret
			|
	GET account+secret+redirect_url
			|
		   token
		    |
	POST account+secrect+token+redirect_url
			|
	  access token

*/
func main() {
	r := cedar.NewRouter()
	r.SetDebug()
	r.SetLayout("./view/layout/include_header.html", "./view/layout/include_footer.html", "./view/layout/csrf.html")
	r.Middleware("csrf", v1.Csrf)
	// 第一个版本的 api接口
	// 有两种验证模式 用户自己登录
	r.Group("/v1", func(groups *cedar.Groups) {
		groups.Group("/app", func(g *cedar.Groups) {
			g.Get("", v1.PageAppIndex, nil) // 注册app的页面
			g.Get("/register", v1.PageAppRegister, nil)
			g.Post("/register", v1.AppRegister, nil)
		})
		groups.Get("/auth", v1.PageAuthIndex, nil)
		groups.Post("/auth", v1.AuthIndex, nil, "csrf")
	})
	r.AutoRegister(&v2.V2{})
	if err := http.ListenAndServe(":7000", r); err != nil {
		log.Fatal(err)
	}
}
